/********************************** (C) COPYRIGHT *******************************
 * File Name          : main.c
 * Author             : WCH
 * Version            : V1.0.0
 * Date               : 2023/12/26
 * Description        : Main program body.
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/

/*
 *@Note
 *双热电偶温度计:
 *
 ***Only PA0--PA15 and PC16--PC17 support input pull-down.
 */

#include "debug.h"

/* Global define */

/* Global Variable */

/*********************************************************************
 * @fn      GPIO_Toggle_INIT
 *
 * @brief   Initializes GPIOA.0
 *
 * @return  none
 */
void GPIO_Toggle_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

/*********************************************************************
 * @fn      main
 *
 * @brief   Main program.
 *
 * @return  none
 */
int main(void)
{
    u8 i = 0;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    SystemCoreClockUpdate();
    Delay_Init();
    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n", SystemCoreClock);
    printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
    printf("GPIO Toggle TEST\r\n");
    GPIO_Toggle_INIT();

    while(1)
    {
        Delay_Ms(500);
        GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
    }
}


/*
io 分配
数码管seg
SEG0 PB9
SEG1 PB3
SEG2 PB1
SEG3 PB8
SEG4 PB12
SEG5 PB7
SEG6 PB4
SEG7 PB6

数码管com
COM5  WD1_B  PA2
COM4  WD1_S  PC15
COM3  WD1_G  PA0

COM2  WD2_B  PA1
COM1  WD2_S  PC14
COM0  WD2_G  PC3

OPA
O1N0 PA6
O1P0 PB0
O1O0_ADC3 PA3

O2N0 PA5
O2P0 PA7
O2O0_ADC4 PA4

数码管刷新
30帧，每帧要显示6个数码管，每个数码管的停留时间则为1000/30/6=5.56ms
用定时器做中断，每6ms更新一次显示。6个u8数组作为显存。

ADC采集
16通道规则，分别读热电偶1，热点偶2，RT的值，DMA到16位的数组里面
1. 热电偶1
2. 热点偶2
3. RT的值
4. 热电偶1
5. 热电偶2
6. RT的值
7. 热电偶1
8. 热电偶2
9. RT的值
10.热电偶1
11. 热电偶2
12. RT的值 
13. 热电偶1
14. 热电偶2
15. RT的值
16. RT的值
ADC单次转换，转换完成触发中断，到DMA的buf里面读取数据进行处理
处理完成后填充显存。

*/